/*
 */
package gclib;

import gclib.inventory.Armor;
import gclib.Abilities.TYPE;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**Class.java
 * 
 * Created Jul 23, 2009 7:53:07 PM
 * @author Jason
 */
public class Class {
	private Set<Abilities.TYPE> keyAbilities = Collections.emptySet();
	private Set<Armor.TYPE> armorProficiencies = new HashSet<Armor.TYPE>(0);
	private Set<WeaponGroup.TYPE> weaponProficiencies = new HashSet<WeaponGroup.TYPE>(0);
	private Map<String, Integer> defenseBonsuses = new HashMap<String, Integer>(0);
	private Set<Skill> trainedSkills = new HashSet<Skill>(0);
	private Set<Feature> classFeatures = new HashSet<Feature>(0);

	private Integer initialHp;
	private Integer hpPerLvl;
	private Integer healingSurgesPerDay;

	public Class() {
	}

	public Class(Set<TYPE> keyAbilities,
				 Set<Armor.TYPE> armorProficiencies,
				 Set<WeaponGroup.TYPE> weaponProficiencies,
				 Map<String, Integer> defenseBonsuses,
				 Set<Skill> trainedSkills,
				 Set<Feature> classFeatures,
				 Integer initialHp,
				 Integer hpPerLvl,
				 Integer healingSurgesPerDay) {
		this.keyAbilities = keyAbilities;
		this.armorProficiencies = armorProficiencies;
		this.weaponProficiencies = weaponProficiencies;
		this.defenseBonsuses = defenseBonsuses;
		this.trainedSkills = trainedSkills;
		this.classFeatures = classFeatures;
		this.initialHp = initialHp;
		this.hpPerLvl = hpPerLvl;
		this.healingSurgesPerDay = healingSurgesPerDay;
	}

	public Set<Armor.TYPE> getArmorProficiencies() {
		return armorProficiencies;
	}

	public Set<Feature> getClassFeatures() {
		return classFeatures;
	}

	public Map<String, Integer> getDefenseBonsuses() {
		return defenseBonsuses;
	}

	public Integer getHealingSurgesPerDay() {
		return healingSurgesPerDay;
	}

	public Integer getHpPerLvl() {
		return hpPerLvl;
	}

	public Integer getInitialHp() {
		return initialHp;
	}

	public Set<TYPE> getKeyAbilities() {
		return keyAbilities;
	}

	public Set<Skill> getTrainedSkills() {
		return trainedSkills;
	}

	public Set<WeaponGroup.TYPE> getWeaponProficiencies() {
		return weaponProficiencies;
	}

	public void setArmorProficiencies(Set<Armor.TYPE> armorProficiencies) {
		this.armorProficiencies = armorProficiencies;
	}

	public void setClassFeatures(Set<Feature> classFeatures) {
		this.classFeatures = classFeatures;
	}

	public void setDefenseBonsuses(Map<String, Integer> defenseBonsuses) {
		this.defenseBonsuses = defenseBonsuses;
	}

	public void setHealingSurgesPerDay(Integer healingSurgesPerDay) {
		this.healingSurgesPerDay = healingSurgesPerDay;
	}

	public void setHpPerLvl(Integer hpPerLvl) {
		this.hpPerLvl = hpPerLvl;
	}

	public void setInitialHp(Integer initialHp) {
		this.initialHp = initialHp;
	}

	public void setKeyAbilities(Set<TYPE> keyAbilities) {
		this.keyAbilities = keyAbilities;
	}

	public void setTrainedSkills(Set<Skill> trainedSkills) {
		this.trainedSkills = trainedSkills;
	}

	public void setWeaponProficiencies(Set weaponProficiencies) {
		this.weaponProficiencies = weaponProficiencies;
	}
}
